/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejb.dao.estagio;

import ejb.dao.relatorios.AvaliacaoEstagiario;
import ejb.dao.relatorios.AvaliacaoSupervisor;
import ejb.dao.relatorios.FichaFrequencia;
import ejb.dao.relatorios.RelatorioAtividades;
import ejb.dao.usuarios.Estagiario;
import ejb.dao.usuarios.Orientador;
import ejb.dao.usuarios.Supervisor;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;

/**
 *
 * @author Guilherme Silva
 * @author Pedro Siqueira
 */
@Entity
@Table(name = "tb_estagio")
public class Estagio implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private boolean isObrigatorio;
    private double valorBolsa;
    private double valorAuxilioTransporte;
    private String nApoliceSeguro;
    private String empresaApoliceSeguro;
    private String tema;
    private String area;
    private double cargaHorariaDiaria;
    private double cargaHorariaSemanal;
    private double cargaHorariaTotalPrevista;
    private String inicioPrevisto;
    private String terminoPrevisto;
    private String justificativa;
    private String objetivo;
    private String metodologia;
    @OneToOne(cascade = CascadeType.ALL)
    private Concedente concedente;
    @OneToOne
    private Orientador orientador;
    @OneToOne(cascade = CascadeType.ALL)
    private Supervisor supervisor;
    @OneToOne
    private AvaliacaoEstagiario avaliacaoEstagiario;
    @OneToOne
    private AvaliacaoSupervisor avaliacaoSupervisor;
    @OneToOne
    private RelatorioAtividades relatorioAtividades;
    @Column(length = 1024)
    private String cronograma;
    @Column(length = 1024)
    private String horarioEstagio;
    @OneToOne(mappedBy = "estagio", cascade = CascadeType.ALL)
    private Estagiario estagiario;
    @OneToMany(mappedBy = "estagio", cascade = CascadeType.ALL)
    private List<FichaFrequencia> fichaFrequencia;
    private String status;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Date dataAprovacao;
    private String observacoes;

    public Estagio() {
    }

    public Estagio(boolean isObrigatorio, double valorBolsa, double valorAuxilioTransporte, String nApoliceSeguro, String empresaApoliceSeguro, String tema, String area, double cargaHorariaDiaria, double cargaHorariaSemanal, double cargaHorariaTotalPrevista, String inicioPrevisto, String terminoPrevisto, String justificativa, String objetivo, String metodologia, Concedente concedente, Orientador orientador, Supervisor supervisor, String cronograma, String horarioEstagio, Estagiario estagiario) {
        this.isObrigatorio = isObrigatorio;
        this.valorBolsa = valorBolsa;
        this.valorAuxilioTransporte = valorAuxilioTransporte;
        this.nApoliceSeguro = nApoliceSeguro;
        this.empresaApoliceSeguro = empresaApoliceSeguro;
        this.tema = tema;
        this.area = area;
        this.cargaHorariaDiaria = cargaHorariaDiaria;
        this.cargaHorariaSemanal = cargaHorariaSemanal;
        this.cargaHorariaTotalPrevista = cargaHorariaTotalPrevista;
        this.inicioPrevisto = inicioPrevisto;
        this.terminoPrevisto = terminoPrevisto;
        this.justificativa = justificativa;
        this.objetivo = objetivo;
        this.metodologia = metodologia;
        this.concedente = concedente;
        this.orientador = orientador;
        this.supervisor = supervisor;
        this.cronograma = cronograma;
        this.horarioEstagio = horarioEstagio;
        this.estagiario = estagiario;
        this.status = "Novo";
    }

    public String getArea() {
        return area;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public double getCargaHorariaDiaria() {
        return cargaHorariaDiaria;
    }

    public void setCargaHorariaDiaria(double cargaHorariaDiaria) {
        this.cargaHorariaDiaria = cargaHorariaDiaria;
    }

    public double getCargaHorariaSemanal() {
        return cargaHorariaSemanal;
    }

    public void setCargaHorariaSemanal(double cargaHorariaSemanal) {
        this.cargaHorariaSemanal = cargaHorariaSemanal;
    }

    public double getCargaHorariaTotalPrevista() {
        return cargaHorariaTotalPrevista;
    }

    public void setCargaHorariaTotalPrevista(double cargaHorariaTotalPrevista) {
        this.cargaHorariaTotalPrevista = cargaHorariaTotalPrevista;
    }

    public Concedente getConcedente() {
        return concedente;
    }

    public void setConcedente(Concedente concedente) {
        this.concedente = concedente;
    }

    public String getCronograma() {
        return cronograma;
    }

    public void setCronograma(String cronograma) {
        this.cronograma = cronograma;
    }

    public String getEmpresaApoliceSeguro() {
        return empresaApoliceSeguro;
    }

    public void setEmpresaApoliceSeguro(String empresaApoliceSeguro) {
        this.empresaApoliceSeguro = empresaApoliceSeguro;
    }

    public List<FichaFrequencia> getFichaFrequencia() {
        return fichaFrequencia;
    }

    public void setFichaFrequencia(List<FichaFrequencia> fichaFrequencia) {
        this.fichaFrequencia = fichaFrequencia;
    }

    public String getHorarioEstagio() {
        return horarioEstagio;
    }

    public void setHorarioEstagio(String horarioEstagio) {
        this.horarioEstagio = horarioEstagio;
    }

    public Long getId() {
        return id;
    }

    public String getInicioPrevisto() {
        return inicioPrevisto;
    }

    public void setInicioPrevisto(String inicioPrevisto) {
        this.inicioPrevisto = inicioPrevisto;
    }

    public boolean isIsObrigatorio() {
        return isObrigatorio;
    }

    public void setIsObrigatorio(boolean isObrigatorio) {
        this.isObrigatorio = isObrigatorio;
    }

    public String getJustificativa() {
        return justificativa;
    }

    public void setJustificativa(String justificativa) {
        this.justificativa = justificativa;
    }

    public String getMetodologia() {
        return metodologia;
    }

    public void setMetodologia(String metodologia) {
        this.metodologia = metodologia;
    }

    public String getnApoliceSeguro() {
        return nApoliceSeguro;
    }

    public void setnApoliceSeguro(String nApoliceSeguro) {
        this.nApoliceSeguro = nApoliceSeguro;
    }

    public String getObjetivo() {
        return objetivo;
    }

    public void setObjetivo(String objetivo) {
        this.objetivo = objetivo;
    }

    public Orientador getOrientador() {
        return orientador;
    }

    public void setOrientador(Orientador orientador) {
        this.orientador = orientador;
    }

    public Supervisor getSupervisor() {
        return supervisor;
    }

    public void setSupervisor(Supervisor supervisor) {
        this.supervisor = supervisor;
    }

    public String getTema() {
        return tema;
    }

    public void setTema(String tema) {
        this.tema = tema;
    }

    public String getTerminoPrevisto() {
        return terminoPrevisto;
    }

    public void setTerminoPrevisto(String terminoPrevisto) {
        this.terminoPrevisto = terminoPrevisto;
    }

    public double getValorAuxilioTransporte() {
        return valorAuxilioTransporte;
    }

    public void setValorAuxilioTransporte(double valorAuxilioTransporte) {
        this.valorAuxilioTransporte = valorAuxilioTransporte;
    }

    public double getValorBolsa() {
        return valorBolsa;
    }

    public void setValorBolsa(double valorBolsa) {
        this.valorBolsa = valorBolsa;
    }

    public AvaliacaoEstagiario getAvaliacaoEstagiario() {
        return avaliacaoEstagiario;
    }

    public void setAvaliacaoEstagiario(AvaliacaoEstagiario avaliacaoEstagiario) {
        this.avaliacaoEstagiario = avaliacaoEstagiario;
    }

    public AvaliacaoSupervisor getAvaliacaoSupervisor() {
        return avaliacaoSupervisor;
    }

    public void setAvaliacaoSupervisor(AvaliacaoSupervisor avaliacaoSupervisor) {
        this.avaliacaoSupervisor = avaliacaoSupervisor;
    }

    public RelatorioAtividades getRelatorioAtividades() {
        return relatorioAtividades;
    }

    public void setRelatorioAtividades(RelatorioAtividades relatorioAtividades) {
        this.relatorioAtividades = relatorioAtividades;
    }

    public Estagiario getEstagiario() {
        return estagiario;
    }

    public void setEstagiario(Estagiario estagiario) {
        this.estagiario = estagiario;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public Date getDataAprovacao() {
        return dataAprovacao;
    }

    public void setDataAprovacao(Date dataAprovacao) {
        this.dataAprovacao = dataAprovacao;
    }

    public String getObservacoes() {
        return observacoes;
    }

    public void setObservacoes(String observacoes) {
        this.observacoes = observacoes;
    }

    public void setId(Long id) {
        this.id = id;
    }
}
